Le client a deux tâches primordiales:
\begin{itemize}
  \item Communiquer les actions du joueur au serveur
  \item Afficher sur l'écran de la console les évenements du jeu à partir des
  informations fournies par le serveur
\end{itemize}

La plus grande difficulté lors de la programmation du client venait de la
découverte des fonctions PSP qui se trouvaient différentes des fonctions C
classiques. Pour chaque fonction  X il y a une nouvelle fonction sceX (pour
sony computer entertainment).\\ La difficulté vient du fait que ces fonctions
n'ont pas toujours exactement le  même comportement que leur equivalent PC. La
PSP en plus de sa library personelle possède une adaptation de la libC pour les 
machines embarqués (la newlib). Cette library reprend, elle, par contre, les
fonctions standard de la libC et semble en avoir gardé le comportement. C'est
donc ces fonctions que nous avons utilisé le plus souvent.\\ Une autre
difficulté de la PSP était qu'elle ne permettait pas de tester rapidement le
code compilé. En effet il nous faut installer le binaire dans la console pour
pouvoir le lancer ce qui bien qu'étant une manoeuvre rapide, une fois répétée
souvent, s'avere  laborieux (surtout en phase de debug).\\ Pour éviter ceci 
nous étions partie sur un code compilable à la fois sur PSP et sur PC (ceci
demandait un peu plus de temps et de flexibilité dans le code). Pour ce faire
nous avons utilisé un portage de la library SDL pour PSP. Celle library,
présente aussi sur PC, nous permettait de factoriser toutes nos fonctions
d'affichage. Une fois décidé l'utilisation de la newlib et non de la library 
PSP pour les gestion des fonctions,  nous avions un code  fortement compatible
PC.\\ Pour des questions de tests et de debug, la version actuelle n'est pas
compilable pour PC mais il faudrait peu de modifications du code pour retrouver
cette compatibilité.\\ Afin de réduire encore cette lenteur lors des tests nous
avons utilisé un outil (IRshell) qui nous permet de lancer directement depuis
le PC la code compilé via USB. Ceci nous a au final valu quelques déboires
(voir difficultés rencontrées) mais c'est avéré  efficace par la suite.

La PSP effectue les actions suivantes (dans cet ordre):
\begin{itemize}
  \item récupération dans les données utilisateurs de la PSP des informations
  de connexions
  \item connexion au point  wifi
  \item récupération de l'adresse du serveur via le point 
  \item connexion au serveur
  \item attente de réception du message "?" qui permer de synchroniser tous
  les envois d'informations au serveur
  \item envoi de l'ensemble des actions du joueur depuis le dernier "?" sous la
  forme d'une chaine de 1 ou 0 qui correspondent à l'appui ou non sur les touches de la console.
  \item récupération du monde à afficher
  \item affichage correspondant
\end{itemize}

Les 4 étapes se font en boucle et parallelement au calcul des scènes à afficher.
En effet le passage du monde actuel (elements présents à l'ecran) au nouveau
monde donné par le serveur se fait en plusieurs étapes (il faut rester fluide
et donner l'illusion du temps réel). (ceci n'est pas encore réellement
implémenté)

Le client est principalement codé dans le fichier pspconnect.c qui reprend
toutes les fonctions de communications et de reseau et à terme dans game.c qui
contiendra les fonctions d'affichage de l'affichage.
